fix(adapters): expose noticeDelivery advertisements and gate resources/updated wiring on them (#99, #362 follow-up) - #412
Conversation
🦋 Changeset detectedLatest commit: a99597c The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
commit: |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0ab50d6224
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
0ab50d6 to
f46e051
Compare
…nd gate the inbox route on its own advertisement Codex P1/P2 on #412: - TargetAdapter.noticeDelivery and every build-side signature now use a local NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public declaration of agent-bundle resolves through the optional @agent-bundle/runtime peer; a test asserts mutual assignability with the runtime's AgentNoticeDeliveryAdvertisement and route list. - The agent-bundle://notices/inbox resource is registered in the server and mounted in its Flight worker only where the host advertises mcp-inbox; mcp-resource-updated additionally requires the inbox. The worker still mounts the ledger so routes can publish, and the reserved name stays reserved.
|
@codex review |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
…nd gate the inbox route on its own advertisement Codex P1/P2 on #412: - TargetAdapter.noticeDelivery and every build-side signature now use a local NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public declaration of agent-bundle resolves through the optional @agent-bundle/runtime peer; a test asserts mutual assignability with the runtime's AgentNoticeDeliveryAdvertisement and route list. - The agent-bundle://notices/inbox resource is registered in the server and mounted in its Flight worker only where the host advertises mcp-inbox; mcp-resource-updated additionally requires the inbox. The worker still mounts the ledger so routes can publish, and the reserved name stays reserved.
0305eb3 to
92890e2
Compare
f1545d0 to
a2344e1
Compare
…nd gate the inbox route on its own advertisement Codex P1/P2 on #412: - TargetAdapter.noticeDelivery and every build-side signature now use a local NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public declaration of agent-bundle resolves through the optional @agent-bundle/runtime peer; a test asserts mutual assignability with the runtime's AgentNoticeDeliveryAdvertisement and route list. - The agent-bundle://notices/inbox resource is registered in the server and mounted in its Flight worker only where the host advertises mcp-inbox; mcp-resource-updated additionally requires the inbox. The worker still mounts the ledger so routes can publish, and the reserved name stays reserved.
92890e2 to
ad91df1
Compare
…nd gate the inbox route on its own advertisement Codex P1/P2 on #412: - TargetAdapter.noticeDelivery and every build-side signature now use a local NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public declaration of agent-bundle resolves through the optional @agent-bundle/runtime peer; a test asserts mutual assignability with the runtime's AgentNoticeDeliveryAdvertisement and route list. - The agent-bundle://notices/inbox resource is registered in the server and mounted in its Flight worker only where the host advertises mcp-inbox; mcp-resource-updated additionally requires the inbox. The worker still mounts the ledger so routes can publish, and the reserved name stays reserved.
ad91df1 to
dd92931
Compare
…nd gate the inbox route on its own advertisement Codex P1/P2 on #412: - TargetAdapter.noticeDelivery and every build-side signature now use a local NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public declaration of agent-bundle resolves through the optional @agent-bundle/runtime peer; a test asserts mutual assignability with the runtime's AgentNoticeDeliveryAdvertisement and route list. - The agent-bundle://notices/inbox resource is registered in the server and mounted in its Flight worker only where the host advertises mcp-inbox; mcp-resource-updated additionally requires the inbox. The worker still mounts the ledger so routes can publish, and the reserved name stays reserved.
dd92931 to
8f5a6e9
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8f5a6e9f00
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
96ae320 to
2c91511
Compare
…nd gate the inbox route on its own advertisement Codex P1/P2 on #412: - TargetAdapter.noticeDelivery and every build-side signature now use a local NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public declaration of agent-bundle resolves through the optional @agent-bundle/runtime peer; a test asserts mutual assignability with the runtime's AgentNoticeDeliveryAdvertisement and route list. - The agent-bundle://notices/inbox resource is registered in the server and mounted in its Flight worker only where the host advertises mcp-inbox; mcp-resource-updated additionally requires the inbox. The worker still mounts the ledger so routes can publish, and the reserved name stays reserved.
8f5a6e9 to
65b6293
Compare
…nd gate the inbox route on its own advertisement Codex P1/P2 on #412: - TargetAdapter.noticeDelivery and every build-side signature now use a local NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public declaration of agent-bundle resolves through the optional @agent-bundle/runtime peer; a test asserts mutual assignability with the runtime's AgentNoticeDeliveryAdvertisement and route list. - The agent-bundle://notices/inbox resource is registered in the server and mounted in its Flight worker only where the host advertises mcp-inbox; mcp-resource-updated additionally requires the inbox. The worker still mounts the ledger so routes can publish, and the reserved name stays reserved.
65b6293 to
ab61a53
Compare
…nd gate the inbox route on its own advertisement Codex P1/P2 on #412: - TargetAdapter.noticeDelivery and every build-side signature now use a local NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public declaration of agent-bundle resolves through the optional @agent-bundle/runtime peer; a test asserts mutual assignability with the runtime's AgentNoticeDeliveryAdvertisement and route list. - The agent-bundle://notices/inbox resource is registered in the server and mounted in its Flight worker only where the host advertises mcp-inbox; mcp-resource-updated additionally requires the inbox. The worker still mounts the ledger so routes can publish, and the reserved name stays reserved.
5613425 to
14a16df
Compare
…nd gate the inbox route on its own advertisement Codex P1/P2 on #412: - TargetAdapter.noticeDelivery and every build-side signature now use a local NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public declaration of agent-bundle resolves through the optional @agent-bundle/runtime peer; a test asserts mutual assignability with the runtime's AgentNoticeDeliveryAdvertisement and route list. - The agent-bundle://notices/inbox resource is registered in the server and mounted in its Flight worker only where the host advertises mcp-inbox; mcp-resource-updated additionally requires the inbox. The worker still mounts the ledger so routes can publish, and the reserved name stays reserved.
14a16df to
66def4c
Compare
…nd gate the inbox route on its own advertisement Codex P1/P2 on #412: - TargetAdapter.noticeDelivery and every build-side signature now use a local NoticeDeliveryAdvertisement (adapters/notice-delivery.ts) so no public declaration of agent-bundle resolves through the optional @agent-bundle/runtime peer; a test asserts mutual assignability with the runtime's AgentNoticeDeliveryAdvertisement and route list. - The agent-bundle://notices/inbox resource is registered in the server and mounted in its Flight worker only where the host advertises mcp-inbox; mcp-resource-updated additionally requires the inbox. The worker still mounts the ledger so routes can publish, and the reserved name stays reserved.
66def4c to
2888b16
Compare
8ad53a1 to
473f963
Compare
4274e5d to
a5513e7
Compare
|
@codex review |
a5513e7 to
bd4ab85
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…and gate the notice routes on them - add a per-target noticeDelivery advertisement to TargetAdapter and the registry, with the delivery shape defined locally in the compiler (adapters/notice-delivery.ts) so the optional runtime peer never enters public declarations; a test asserts mutual assignability with @agent-bundle/runtime/notices - wire the mcp-inbox route only when the target advertises it as supported, and mcp-resource-updated only when both it and the inbox are advertised; thread noticeDelivery through entries, build, and inspect-bundler - consumer-facing changeset for agent-bundle
bd4ab85 to
ae1eba1
Compare
|
@codex review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
… reasons; state the diagnostic-code impact in the changeset
ae1eba1 to
a99597c
Compare
#428) Document the user-facing behaviour that landed on main after the docsite PR (#384) merged, in both locales: - install: `agent-bundle install cursor --mode local|marketplace` and the Doctor findings for Cursor hook registration and marketplace staging (AB7322-AB7324) (#414) - project structure: per-host feature sets for src/commands and src/rules, with AB4907/AB4908 and AB4927/AB4928 (#427) - testing: the script-dispatch and workbench-surface proof levels, eleven in all, and the routed cli-tool template (#398) - notices reference: inbox and resources/updated wiring gated on the host's noticeDelivery advertisement (#412, #376)
|
@codex review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Review-status tracking (final sweep, 2026-09-03 16:37 UTC): |
|
You have reached your Codex usage limits. You can see your limits in the Codex usage dashboard. |
Follow-up to the unaddressed P1 on #362 (per-host
noticeDeliverytables landed in capability JSON but were not exposed through the adapter API, and nothing consumed them). Was stacked on #376; #376 is merged (23ee0f529) and this PR now targetsmain.Summary
TargetAdapter.noticeDelivery?: NoticeDeliveryAdvertisement— the advertisement shape (NOTICE_DELIVERY_ROUTES,NoticeDeliveryRoute,NoticeDeliveryRouteState,NoticeDeliveryAdvertisement) is defined locally insrc/adapters/notice-delivery.tsand exported from the package root, so public declarations never resolve through the optional@agent-bundle/runtimepeer; a test asserts mutual assignability with the runtime'sAgentNoticeDeliveryAdvertisement.claude,codex,cursor,portable) populates it from its capability table vianoticeDeliveryAdvertisementFrom(), which fails closed on a row it cannot describe (unknown route, missing route, unknown state,unavailablewhose reason carries no ISO survey dateYYYY-MM-DD).plugin(composite) advertises the intersection of its three hosts (intersectNoticeDeliveryAdvertisements()); reasons are merged, deduplicated, sorted.TargetRegistry.register()re-validates the advertisement at the JavaScript boundary (CapabilityStateError; no diagnostic codes added or changed);registry.noticeDelivery(name)exposes the snapshot.agent-bundle://notices/inboxresource (mcp-inbox) is registered and mounted in the Flight worker only where the host advertisesmcp-inbox: supported;resources/subscribe+notifications/resources/updated(mcp-resource-updated) only where the host additionally advertisesmcp-resource-updated: supportedand state isworkspace-durable.buildandinspect --bundlerboth thread the advertisement. Built-in hosts all advertisemcp-inbox, so their artifacts are unchanged.docs/entry-conventions.mddocuments the gates; changeset foragent-bundle. The docsite's notice delivery matrix and API pages are generated from the capability tables / TypeDoc and follow the source.Evidence
adapter-capability-states.test.ts: adapter/registry exposure typed forselectNoticeDeliveryRoutes; local↔runtime type assignability; intersection semantics; fail-closed table parsing incl. undated reasons; registry re-validation incl. undated reasons.entry-shell.test.ts:mcp-inboxadvertised → inbox route present; unadvertised /unavailable→ no inbox route and noresources.subscribe;mcp-resource-updatedwiring only with inbox + durable state.Test plan
pnpm build,pnpm typecheck,pnpm lintpnpm test:unit(onlynative-claude-contractfails locally; identical failure onorigin/mainin this environment, passes in CI),pnpm test:route-unit,pnpm test:projectiona99597c0bReview status
Automated reviewer (chatgpt-codex-connector) last covered head
8f5a6e9f00(review of 2026-09-03T09:52Z; earlier0ab50d6224,0305eb3973). Every thread it left is fixed and replied. It did not review2888b1639,4274e5d81,a5513e710,bd4ab852e,6aa9a2724,ae1eba139, or the current heada99597c0b(same tree asae1eba139, re-pushed to trigger CI after retargeting) (rebases onto#376/main, conflict resolutions, and the dated-reason + changeset fixes):@codex reviewreturned "usage limits reached" at 15:02Z and 15:25Z. Per the maintainer's amendment, merging on CI green; request a follow-up review ofa99597c0bwhen credits return.